//#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//
//int main() {
//
//	int n=20;
//	int sum = 20;
//	while (n!=1)
//	{
//		sum += n / 2;
//		n = n / 2 + n % 2;
//	}
//	printf("%d", sum);
//	return 0;
//}



// 函数声明
//void reorderArray(int* arr, int length);
//
//int main() {
//    int arr[] = { 1, 2, 3, 4, 5 };
//    int length = sizeof(arr) / sizeof(arr[0]);
//
//    reorderArray(arr, length);
//
//    // 输出调整后的数组
//    for (int i = 0; i < length; i++) {
//        printf("%d ", arr[i]);
//    }
//    printf("\n");
//
//    return 0;
//}
//void reorderArray(int *arr, int length) {
//    int left = 0;
//    int right = length - 1;
//    while (left < right) {
//        // 从左向右找第一个偶数
//        while (left < right && *(arr + left) % 2 != 0) {
//            left++;
//        }
//        // 从右向左找第一个奇数
//        while (left < right && *(arr + right) % 2 == 0) {
//            right--;
//        }
//        if (left < right) {
//            // 交换左右指针所指向的元素
//            int temp = *(arr+left);
//            *(arr + left) = *(arr + right);
//            *(arr + right) = temp;
//        }
//    }
//}




//int main() {
//	int arr[2] = { 0 };
//	scanf("%d", &arr[0]);
//	printf("%d", arr[0]);
//	return 0;
//}


//#include <stdio.h>
////
//void sort(int arr[], int sz)
//{
//    int inc = 1;
//    int dec = 1;
//    int i = 0;
//    while (i < sz - 1)
//    {
//        if (arr[i] < arr[i + 1])
//        {
//            dec = 0;
//        }
//
//        if (arr[i] > arr[i + 1])
//        {
//
//            inc = 0;
//        }
//        i++;
//    }
//    if (dec || inc)
//        printf("sorted\n");
//    else
//        printf("unsorted\n");
//}
//int main() {
//    int n;
//    scanf("%d", &n);
//    int arr[10];
//   
//    int i;
//    for (i = 0; i < n; i++)
//    {
//        scanf("%d", &arr[i]);
//    }
//    sort(arr, n);
//    return 0;
//}



//#include <stdio.h>
////
//int main() {
//    int arr1[10] = { 0 };
//    int arr2[10] = { 0 };
//    int i, n;
//
//    scanf("%d", &n);
//
//    // 读取arr1数组元素
//    for (i = 0; i < n; i++) {
//        scanf("%d", &arr1[i]);
//    }
//
//    // 读取arr2数组元素
//    for (i = 0; i < n; i++) {
//        scanf("%d", &arr2[i]);
//    }
//
//    // 交换arr1和arr2数组对应位置的元素
//    for (i = 0; i < n; i++) {
//        int tmp = arr1[i];
//        arr1[i] = arr2[i];
//        arr2[i] = tmp;
//    }
//
//    // 输出arr1数组
//    for (i = 0; i < n; i++) {
//        printf("%d ", arr1[i]);
//    }
//    printf("\n");
//
//    // 输出arr2数组
//    for (i = 0; i < n; i++) {
//        printf("%d ", arr2[i]);
//    }
//
//    return 0;

//void init(int arr[], int size) {
//    for (int i = 0; i < size; i++) {
//        arr[i] = 0;
//    }
//}
//void print(int arr[], int size) {
//    for (int i = 0; i < size; i++) {
//        printf("%d ", arr[i]);
//    }
//    printf("\n");
//}
//void reverse(int arr[], int size) {
//    int start = 0;
//    int end = size - 1;
//    while (start < end) {
//        int temp = arr[start];
//        arr[start] = arr[end];
//        arr[end] = temp;
//        start++;
//        end--;
//    }
//}
//int main() {
//    int size = 5;
//    int arr[5];
//    init(arr, size);
//    printf("初始化后的数组: ");
//    print(arr, size);
//    reverse(arr, size);
//    printf("逆置后的数组: ");
//    print(arr, size);
//
//    return 0;
//}



//#include <stdio.h>
//
// 非递归函数求斐波那契数
//int fibonacci_non_recursive(int n) {
//    if (n <= 1) {
//        return n;
//    }
//    int a = 0, b = 1, result;
//    for (int i = 2; i <= n; i++) {
//        result = a + b;
//        a = b;
//        b = result;
//    }
//    return result;
//}
 //递归函数求斐波那契数
//int fibonacci_recursive(int n) {
//    if (n <= 1) {
//        return n;
//    }
//    return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2);
//}
//
//int main()
//{
//    int n = 10;
//    printf("第 %d 个斐波那契数（递归）: %d\n", n, fibonacci_recursive(n));
//    printf("第 %d 个斐波那契数（非递归）: %d\n", n, fibonacci_non_recursive(n));
//    return 0;
//}




//#include <string.h>
//
//// 递归函数实现字符串逆序
//void reverse_string(char* str, int start, int end) {
//    if (start < end) {      
//        char temp = str[start];
//        str[start] = str[end];
//        str[end] = temp;
//        reverse_string(str, start + 1, end - 1);
//    }
//}
//int main() {
//    char str[] = "Hello, World!";
//    int len = strlen(str);
//    reverse_string(str, 0, len - 1);
//    printf("逆序后的字符串: %s\n", str);
//    return 0;
//}
//


//unsigned long long factorial_recursive(int n)
//{
//	if (n == 0 || n == 1)
//	{
//		return 1;
//	}
//	return n * factorial_recursive(n - 1);
//}
//unsigned long long factorial_non_recursive(int n)
//{
//	unsigned long long result = 1;
//	int i;
//	for (i = 1; i <= n; i++)
//	{
//		result *= i;
//	}
//	return result;
//}
//int main()
//{
//	int n = 5;
//	printf("%lld\n", factorial_recursive(n));
//	printf("%lld", factorial_non_recursive(n));
//
//	return 0;
//}
